package com.zhm.demo.csv;


import cn.hutool.core.annotation.Alias;
import cn.hutool.core.text.csv.*;

import java.io.File;
import java.util.List;
import java.util.Objects;

public class CsvTest {

    public static void main(String[] args) {
        testRead2();
//        testWrite();
    }


    public static class CsvDTO {
        @Alias("name")
        public String name;
        @Alias("alpha-2")
        public String alpha2;
        @Alias("alpha-3")
        public String alpha3;
        @Alias("country-code")
        public String countryCode;
        @Alias("region")
        public String region;
    }

    public static void testRead2() {
        // 第一参数：读取文件的路径 第二个参数：分隔符（不懂仔细查看引用百度百科的那段话） 第三个参数：字符集
        CsvReader csvReader = new CsvReader(new File("D:\\WebstormProjects\\ISO-3166-Countries-with-Regional-Codes\\all\\all.csv"), new CsvReadConfig().setHeaderLineNo(0));

        // 如果你的文件没有表头，这行不用执行
        // 这行不要是为了从表头的下一行读，也就是过滤表头
        CsvData read = csvReader.read();

        List<String> header = read.getHeader();
        read.getRows().forEach(csvRow -> {
            CsvDTO bean = csvRow.toBean(CsvDTO.class);
            String s = csvRow.get(0);
            String name = csvRow.getByName("name");
        });


    }

    public static void testWrite() {
        CsvWriter csvWriter = new CsvWriter(new File("f:/cc.csv"));
        csvWriter.write(new String[]{"1", "2"});
    }
}
